package com.shenghuai.bclient.stores.util

import android.content.Context
import android.content.res.Resources
import android.util.TypedValue

/**
 * Created by liulei
 * 2019/11/7 11:54
 * 屏幕尺寸转换类
 */
object DensityUtils {

    fun dp2px(ctx: Context, dp: Float): Float {
        return ctx.resources.displayMetrics.density * dp
    }

    fun px2dp(ctx: Context, px: Float): Float {
        return TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_DIP,
            px,
            ctx.resources.displayMetrics
        )
    }

    fun obtainScreenSize(ctx: Context): Array<Int> {
        return arrayOf(
            ctx.resources.displayMetrics.widthPixels,
            ctx.resources.displayMetrics.heightPixels
        )
    }

    fun spToPx(sp: Float): Float {
        return TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_SP,
            sp,
            Resources.getSystem().displayMetrics
        )
    }

    fun pxToSp(px: Float): Float {
        val fontScale =
            Resources.getSystem().displayMetrics.scaledDensity
        return (px / fontScale + 0.5f)
    }
}